package ArrayAndString;

import java.util.ArrayList;
import java.util.List;

public class YangHuiTriangle {
//    杨辉三角
//    给定一个非负整数numRows，生成「杨辉三角」的前numRows行。
//
//    在「杨辉三角」中，每个数是它左上方和右上方的数的和。

    //
//    示例 1:
//
//    输入: numRows = 5
//    输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
//    示例2:
//
//    输入: numRows = 1
//    输出: [[1]]
    public static List<List<Integer>> generate(int numRows) {

        List<List<Integer>> result = new ArrayList<>();
        int[][] nums = new int[numRows][numRows];
        for (int i = 0; i < numRows; i++) {
            List<Integer> internalList = new ArrayList<>();
            for (int j = 0; j <= i; j++) {
                if (j == 0 || i == j) {
                    nums[i][j] = 1;
                } else {
                    nums[i][j] = nums[i - 1][j - 1] + nums[i - 1][j];
                }
                internalList.add(nums[i][j]);
            }
            result.add(internalList);
        }
        return result;
    }

    public static void main(String[] args) {
        System.out.println(generate(4));
        ;
    }
}
